package com.ryan.ohos.extension.event.interfaces;

import ohos.multimodalinput.event.TouchEvent;

/**
 * 事件分发基础接口，需要分发并处理事件的Component需实现此接口
 */
public interface View {
    /**
     * 传递屏幕的触摸事件到目标控件或自己消费
     *
     * @param event 被传递的触摸事件
     * @return 如果事件被自己消费，返回true，否则返回false
     */
    boolean dispatchTouchEvent(TouchEvent event);

    /**
     * 处理触摸事件的方法
     * @param event 待消费的事件
     * @return 是否消费了事件
     */
    boolean onTouchEvent(TouchEvent event);

    /**
     * 事件是否被自己消费了，该结果只能获取一次，获取后将重置为false
     * @return 是否消费了事件
     */
    boolean isConsumed();
}
